#include"./httplib.h"


using namespace httplib;


void HelloZero(const Request &req,Response &rsp)
{
    rsp.body="Hello Zero!";
    rsp.status=200;
    //这个可以忽略，默认httplib会加上一个200的状态码


}
void Numbers(const Request &req,Response &rsp)
{
    //matches:存放正则表达式匹配的规则数据
    //  /numbers/123  maches[0]="/numbers/123"
    //matches[1]="123"
   std::string num=req.matches[1];
    rsp.set_content(num,"text/plain");
    //向rsp.body里添加数据，并且设置Content-Type类型


    rsp.status=200;



}
void Multipart(const Request &req,Response &rsp)
{
    if(req.has_file("file1")==false)
    {
        rsp.status=400;
        return;
    }
    MultipartFormData file=req.get_file_value("file1");
    std::cout<<file.filename<<std::endl;//区域文件名称
    std::cout<<file.content<<std::endl;//区域文件内容
    rsp.status=200;
}

int main()
{

    Server server;
    //设置一个静态资源根目录-为当前目录下的www目录

    server.set_mount_point("/","./www");

    //添加请求-处理函数映射信息
    server.Get("/hi",HelloZero);
    //正则表达式：\d表示数字，+表示匹配前面的字符一次或多次，（）表示单独捕捉数据
    //   /numbers/123
    server.Get("/numbers/(\\d+)",Numbers);

    server.Post("/multipart",Multipart);

    server.listen("0.0.0.0",9090);

    return 0;
}